/******************************************************************************************
 * Import
 ******************************************************************************************/

// module
import {Platform, Dimensions} from 'react-native';

// project
import Session from '../library';

/******************************************************************************************
 * Export
 ******************************************************************************************/
export default {

    /**
     * App配置
     */
    app: {
        platform: Platform.OS,
        appname: 'heshequ',
        version: '0.0.1'
    },

    /**
     * 环境信息
     */
    env: {
        width: Dimensions.get('window').width,
        height: Dimensions.get('window').height
    },

    /**
     * url配置
     */
    url: {
        restful: 'https://restful.sgboke.com/he_fuping/worker/',
        socket: 'http://127.0.0.1:1337',
        upload: 'https://',
        collect: 'https://'
    },

    /**
     * restful配置
     */
    restful: {

        /**
         * header配置
         */
        header: {
            'content-type': "application/x-www-form-urlencoded",
            // 'Authorization': Object.assign(Session.get('profile_auth'), this.app)
            'Authorization': Object.assign({}, this.app)
        },
    },
    
    /**
     * 数据收集配置
     * 
     * 1、arrive类收集，只要用户到达，则立即将信息上传到服务器，不缓存；
     * 2、error类收集，只要程序任意位置出现错误，则立即将信息上传到服务器，不缓存；
     * 3、其它类型的收集，可以在此文件进行相应的设置：
     *      {1} key：保存到本地缓存时的key值
     *      {2} maxLength：缓存最大长度，达到此长度则将数据上传到服务器，并清空缓存
     *      {3} maxSecond：缓存最大秒数，达到此时长则将数据上传到服务器，并清空缓存
     * 4、maxLength和maxSecond，只要满足其中的一条，则立即上传服务器，清空缓存
     * 5、maxLength不得小于3，不得大于50;
     * 6、收集的信息类型：
     *      arrive：设备数据、环境数据、来源码
     *      error：所有错误数据
     *      visit：名称、参数、加载效率、进入时间、退出时间、页面停留时间
     *      move：页面scroll事件信息
     *      scroll：组件scroll事件信息
     *      click：组件click事件信息
     *      app：启动、显示、隐藏（暂不成熟，所以当前未启用）
     */
    collect: {
        visit: {
            key: 'collect_visit',
            maxLength: 20,
            maxSecond: 86400
        },
        move: {
            key: 'collect_move',
            maxLength: 20,
            maxSecond: 86400
        },
        scroll: {
            key: 'collect_scroll',
            maxLength: 20,
            maxSecond: 86400
        },
        click: {
            key: 'collect_click',
            maxLength: 20,
            maxSecond: 86400
        }
    }  
}
